[CODE BLUE 2019] ローカルハッキングの探求 [レポート] #codeblue_jp
こんにちは、芳賀です。
『世界トップクラスのセキュリティ専門家による日本発の情報セキュリティ国際会議』でありますCODE BLUE 2019に参加していますのでレポートします。
このブログは下記セッションについてのレポートです。
ローカルハッキングの探求 Presented by 青山 荘也
研究者が発見する問題は、ベンダに脆弱性と認められないものがある。しかし攻撃者にとっては脆弱性かどうかは関係なく、やりたい事ができるかどうかが重要である。 私はベンダに脆弱性と認められない「コンピュータに侵入した後に管理者権限の有無に関わらず行える攻撃」を「ローカルハッキング」と定義し、研究を進めてきた。 このトークではここ数年行ってきた「ローカルハッキング」の研究を振り返ると共に、最新の研究についても説明する。 そして「ローカルハッキング」の危険性を改めて再認識してほしいと考える
レポート
ローカルハッキングとは?
- コンピューターに侵入されたあと、管理者権限が無くても攻撃できること
ローカルハッキング研究の流れ
- エアギャップ超え侵入からの情報流出を研究
Windows 10 で管理者権限を奪取する方法
- マルウェアを仕込むためにユーザー領域に配置した悪意あるファイルを実行ファイルへコピー/リネームして悪意ある実行ファイルを組み込む
- 再起動することで実行ファイルが実行される事で管理者権限が乗っ取られる。
- ユーザー権限レベルから管理者権限でファイル実行できてしまうため、マイクロソフトのバグバウンティへ報告した。
- 結果として、脆弱性ではないと言われた。(ローカルハッキングであるため)
- しかし、MSはこっそり直していた
ローカルPCの管理者権限って重要?
- PCの管理者権限を奪われた場合でもリスクがあるのではないか?
- PCへ保管されているユーザーデータでも重要なものがあるのではないか?
- 上記の2点から研究を続行した。
Windows 10 でランサムウエア保護を回避する方法
- Windows Defenderでは、通常、ランサムウエアプロテクションはOFFなのでONにする
- プロテクションがONの場合、ランサムウエアを起動させようとしてもブロックされる
- そのため、HKCUがHKLMより優先される仕様を利用した。
- 実行権限があるエクスプローラーへ悪意あるコードに変更し、エクスプローラーからランサムウェアをインジェクションすることができた
- これも重要な問題だとおもいマイクロソフトへ報告した。
- 結果として、バグバウンティへ認定されなかった
- まだMS側では修正されていないので悪用することができる。
ローカルハッキングは脆弱性ではない(MSの言い分)
- 攻撃者にとって脆弱性があるかどうかは関係ない
- 攻撃者にとっては攻撃可能なポイントがある事が重要。
あなたは十分に長く、複雑なパスワードを使っていますか?
- まさか、ポストイットへパスワードを書いていませんよね?
- パスワードを使いまわしていませんか?
- リスト攻撃でアクセスされる恐れがある
- とはいえ人間には限界がある。
- パスワードマネージャーを使っていますか?
- 1つのマスターパスワードがあれば、複数のパスワードを管理できる
- ただし、1つのマスタパスワードが漏れると全てのパスワードが流出する
- 今回検証したパスワードマネージャー(1Password)は、実行ファイルとDLLがユーザーフォルダに存在した
- この場合、ユーザー権限でDLLを書き換える事ができてしまう。
- しかも exe と DLLのやり取りは平文だったので、この間に悪意あるコードを入れ込むことでログを取得することができた
- DLLを書き換えてソフトウェアのログを奪取できると、eMailとシークレットキー、マスターパスワードを入手できた
- 1Passwordでもバグバウンティをおこなっていたので報告した
- 結果として、対象として認めない
- しかし、数時間後にローカルハッキングはバグバウンティのスコープ範囲外だが、賞金が支払われた
なぜローカルハッキングが軽視されるのか?
- すでに侵入されているからなにをされてもしょうがない
- 侵入された後は考えなくてもいいのか?
- それは違う
- ローカルにも重要なデータがある
- 管理者権限を奪取しなくても出来る事が色々ある
感想
バグバウンティでもローカルハッキングはスコープ外になる事があるという知見を得た。 ドキュメントやソースなどはクラウド上へ格納する事が増えたが、それでもまだローカルに必要な情報が格納されていることが多いので、ローカルハッキングへの対応も真剣に考えていく必要がある。